// $lib/components/Feedback/Tooltip/types.ts

/**
 * Tooltip 位置类型
 */
export type Placement =
  | 'top'
  | 'top-start'
  | 'top-end'
  | 'bottom'
  | 'bottom-start'
  | 'bottom-end'
  | 'left'
  | 'left-start'
  | 'left-end'
  | 'right'
  | 'right-start'
  | 'right-end'

/**
 * Tooltip 触发方式类型
 */
export type TriggerType = 'hover' | 'click'

/**
 * Tooltip 配置选项接口
 */
export interface TooltipOptions {
  /**
   * 显示延迟时间（毫秒）
   * @default 200
   */
  delay?: number
  
  /**
   * 是否显示箭头
   * @default true
   */
  showArrow?: boolean
  
  /**
   * 自定义过渡动画类名
   */
  transitionClass?: string
  
  /**
   * Tooltip 最大宽度
   * @default 250
   */
  maxWidth?: number
}

/**
 * Tooltip 组件实例接口
 */
export interface TooltipInstance {
  /**
   * 打开 Tooltip
   */
  open: () => void
  
  /**
   * 关闭 Tooltip
   */
  close: () => void
  
  /**
   * 切换 Tooltip 显示状态
   */
  toggleTooltip: () => void
}

/**
 * Tooltip 事件回调类型
 */
export interface TooltipEvents {
  /**
   * Tooltip 显示时触发
   */
  onShow?: () => void
  
  /**
   * Tooltip 隐藏时触发
   */
  onHide?: () => void
  
  /**
   * Tooltip 显示状态切换时触发
   */
  onToggle?: (visible: boolean) => void
}
